package year2023.recursion;

public class Code00_GetMax {

    //求arr数组中L 和 R 范围的最大值
    public static int getMax(int[] arr){
        return process(arr, 0, arr.length-1);
    }

    public static int process(int[] arr, int L, int R){
        //arr[L..R] 范围上只有一个数，直接返回, base case(递归结束条件)
        if (L == R){
            return arr[L];
        }
        //L...R 不止一个数
        int mid = L + ((R - L) >> 1); //中点
        //同等于 mid = (L + R) / 2
        int leftMax = process(arr, L, mid);
        int rightMax = process(arr, mid + 1, R);
        return Math.max(leftMax, rightMax);
    }


}
